﻿using System.Collections.Generic;
using Newtonsoft.Json;

namespace Infrastructure.ExternalService.Core.Requests
{
    public class CreateAgreementSnapshotRequest
    {
        //班级快照信息
        [JsonProperty("classAtplInfo")]
        public List<OrderItemAgreementTemplateInfo> ClassAtplInfo { get; set; }
        //签约时间
        [JsonProperty("signTime")]
        public string SignTime { get; set; }
        //订单编号
        [JsonProperty("orderNo")]
        public string OrderNo { get; set; }
        //甲方姓名
        [JsonProperty("userName")]
        public string UserName { get; set; }
        //甲方证件类型
        [JsonProperty("userIdcardtype")]
        public string UserIdCardType { get; set; }
        //甲方证件号码
        [JsonProperty("userIdcardno")]
        public string UserIdCardNo { get; set; }
        //甲方联系方式
        [JsonProperty("userMobile")]
        public string UserMobile { get; set; }
        //人社协议收费渠道信息
        [JsonProperty("protocolInformation")]
        public List<string> AccountInfo { get; set; }
        //订单所属人
        [JsonProperty("orderOwner")]
        public string OrderOwner { get; set; }
        //订单实付金额
        [JsonProperty("orderPayamount")]
        public string OrderPayAmount { get; set; }
    }

    public class OrderItemAgreementTemplateInfo
    {
        //班级标识
        [JsonProperty("classId")]
        public string ClassId { get; set; }
        //协议模板标识
        [JsonProperty("atplId")]
        public string AtplId { get; set; }
        //班级名称
        [JsonProperty("className")]
        public string ClassName { get; set; }
        //班级原价
        [JsonProperty("classPrice")]
        public string ClassPrice { get; set; }
        //班级协议条款补充
        [JsonProperty("classAserclause")]
        public string ClassAserClause { get; set; }
        //实付或实付（转入+补交）或实付（转入）
        [JsonProperty("payType")]
        public string PayType { get; set; }
        //支付金额
        [JsonProperty("payPrice")]
        public string PayPrice { get; set; }
        //班级科目类型
        [JsonProperty("classCategory")]
        public string ClassCategory { get; set; }
        //科目实付信息
        [JsonProperty("subjectPay")]
        public List<SubjectPay> SubjectPayInfo { get; set; }
    }

    public class SubjectPay
    {
        //科目标识
        [JsonProperty("subjectId")]
        public string SubjectId { get; set; }
        //科目名称
        [JsonProperty("subjectName")]
        public string SubjectName { get; set; }
        //科目实付
        [JsonProperty("payPrice")]
        public string PayPrice { get; set; }
    }

}